﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Data;
using CurriculasEntities;

namespace CurriculasDAO
{
    public class PlanCurricularDAO : IBaseDA<PlanCurricularBE , int>
    {
        public PlanCurricularBE Crear(PlanCurricularBE entidad)
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                db.PlanCurricular.Add(entidad);
                db.SaveChanges();
            }
            return entidad;
        }

        public PlanCurricularBE Obtener(int id)
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                return db.PlanCurricular.Find(id);
            }
        }

        public PlanCurricularBE Modificar(PlanCurricularBE entidad)
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                db.PlanCurricular.Attach(entidad);
                db.Entry(entidad).State = EntityState.Modified;
                db.SaveChanges();
            }
            return entidad;
        }

        public void Eliminar(PlanCurricularBE entidad)
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                db.PlanCurricular.Remove(entidad);
                db.SaveChanges();
            }
        }

        public ICollection<PlanCurricularBE> ListarTodos()
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                return db.PlanCurricular.ToList();
            }
        }

        public ICollection<PlanCurricularBE> ListarTodos(Expression<Func<PlanCurricularBE, bool>> where)
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                return db.PlanCurricular.Where(where).ToList();
            }
        }
    }
}
